Standard Input এবং Output Streams (System.in, System.out, System.err)

Java Technologies - Java.lang প্যাকেজ (Java.lang Package) System ক্লাস |
109
109

Java java.lang প্যাকেজে তিনটি স্ট্যান্ডার্ড স্ট্রিম রয়েছে যেগুলি ইনপুট এবং আউটপুট অপারেশন পরিচালনার জন্য ব্যবহৃত হয়:

  1. System.in – স্ট্যান্ডার্ড ইনপুট স্ট্রিম
  2. System.out – স্ট্যান্ডার্ড আউটপুট স্ট্রিম
  3. System.err – স্ট্যান্ডার্ড এরর স্ট্রিম

এই স্ট্রিমগুলো মূলত I/O অপারেশন পরিচালনা করতে ব্যবহৃত হয় এবং Java I/O স্ট্রিমের সাথে সম্পর্কিত।


System.in: স্ট্যান্ডার্ড ইনপুট স্ট্রিম

System.in একটি InputStream যা স্ট্যান্ডার্ড ইনপুট (অর্থাৎ কীবোর্ড) থেকে ডেটা রিড করতে ব্যবহৃত হয়। এটি মূলত InputStream ক্লাসের একটি ইনস্ট্যান্স এবং আপনি এটিকে কীবোর্ড থেকে ইউজারের ইনপুট গ্রহণ করার জন্য ব্যবহার করতে পারেন।

System.in ব্যবহার করে আপনি কীবোর্ড থেকে ডেটা নিতে পারেন, কিন্তু এটি শুধুমাত্র বাইট ভিত্তিক ইনপুট দেয়, সুতরাং স্ট্রিং বা অন্যান্য প্রিমিটিভ টাইপে রূপান্তরের জন্য অতিরিক্ত কাজ প্রয়োজন।

উদাহরণ:

import java.io.*;

public class SystemInExample {
    public static void main(String[] args) throws IOException {
        System.out.println("Enter a character: ");
        int input = System.in.read();  // Reads a single byte (character)
        System.out.println("You entered: " + (char) input);
    }
}

এই কোডটি কেবল একটি চরিত্র ইনপুট নেয় এবং সেটি প্রদর্শন করে। System.in.read() মেথড একবারে একটি বাইট ইনপুট নেয়।

System.out: স্ট্যান্ডার্ড আউটপুট স্ট্রিম

System.out হল একটি PrintStream অবজেক্ট, যা স্ট্যান্ডার্ড আউটপুট (অর্থাৎ কনসোল বা টার্মিনাল) এ ডেটা প্রিন্ট করার জন্য ব্যবহৃত হয়। এটি সাধারণত System.out.println(), System.out.print(), System.out.printf() ইত্যাদি মেথডের মাধ্যমে কনসোলে ডেটা আউটপুট করতে ব্যবহৃত হয়।

System.out সাধারণত PrintStream ক্লাসের মাধ্যমে ব্যবহার হয়, যা বিভিন্ন ধরনের ডেটা যেমন স্ট্রিং, ইন্টিজার, ফ্লোট ইত্যাদি আউটপুট করতে পারে।

উদাহরণ:

public class SystemOutExample {
    public static void main(String[] args) {
        System.out.println("Hello, World!");  // Prints the string followed by a new line
        System.out.print("This is a simple message.");  // Prints without a new line
        System.out.printf("The value of pi is approximately: %.2f", 3.14159);  // Prints formatted output
    }
}

Output:

Hello, World!
This is a simple message.The value of pi is approximately: 3.14

System.err: স্ট্যান্ডার্ড এরর স্ট্রিম

System.err হল একটি PrintStream যেটি স্ট্যান্ডার্ড এরর আউটপুট হিসেবে ব্যবহৃত হয়। সাধারণত ত্রুটি (error) বার্তা কনসোলে আউটপুট করতে System.err ব্যবহার করা হয়। এর মাধ্যমে আপনি প্রোগ্রামের ত্রুটিগুলো ভিন্নভাবে হ্যান্ডেল করতে পারেন, যেমন redirection বা বিশেষ ভাবে ত্রুটি বার্তা প্রদর্শন।

System.err মূলত System.out এর মতো কাজ করে, তবে এটি আউটপুটকে আলাদা ভাবে স্ট্রিম হিসেবে পরিচালনা করে এবং সাধারণত এটি ত্রুটি বা ব্যতিক্রমগুলির জন্য ব্যবহৃত হয়।

উদাহরণ:

public class SystemErrExample {
    public static void main(String[] args) {
        System.out.println("This is a normal message.");
        System.err.println("This is an error message.");
    }
}

Output:

This is a normal message.
This is an error message.

System.in, System.out, System.err এর মধ্যে পার্থক্য:

স্ট্রিমPurposeব্যবহৃত ক্লাসসাধারণ ব্যবহৃত মেথড
System.inকীবোর্ড থেকে ইনপুট নেয়InputStreamread(), readLine()
System.outকনসোলে আউটপুট দেয়PrintStreamprintln(), print(), printf()
System.errকনসোলে এরর বা ত্রুটি বার্তা দেয়PrintStreamprintln(), print()

কেন System.in, System.out এবং System.err ব্যবহার করা হয়?

  1. System.in ব্যবহার করে UI-less বা console-based অ্যাপ্লিকেশনগুলির জন্য ইনপুট গ্রহণ করা হয়।
  2. System.out ব্যবহার করে ডেটা আউটপুট, রিপোর্টিং, লগিং বা ব্যবহারকারীকে কনসোলে তথ্য প্রদর্শন করা হয়।
  3. System.err ব্যবহার করে ত্রুটি বার্তা বা এক্সসেপশন আউটপুট করা হয়, যাতে ব্যবহৃত ডেটা এবং ত্রুটি ডেটার মধ্যে স্পষ্ট পার্থক্য রাখা যায়। এটি বিশেষ করে ডিবাগিং এবং লগ ফাইলের জন্য গুরুত্বপূর্ণ।

নোট:

  • System.out এবং System.err একই ধরনের PrintStream ক্লাসের অবজেক্ট, তবে আলাদা স্ট্রিম হিসেবে কাজ করে, যেখানে System.out সাধারণ আউটপুট এবং System.err ত্রুটি বা এরর আউটপুটের জন্য ব্যবহৃত হয়।
  • System.in সাধারণত InputStream ক্লাসের অধীনে কাজ করে এবং কীবোর্ড ইনপুট গ্রহণ করতে ব্যবহৃত হয়।

Java-তে System.in, System.out, এবং System.err স্ট্যান্ডার্ড ইনপুট এবং আউটপুট স্ট্রিমের জন্য ব্যবহৃত হয়। System.in কীবোর্ড থেকে ইনপুট নেয়, System.out কনসোলে আউটপুট দেয়, এবং System.err ত্রুটি বার্তা প্রদর্শন করার জন্য ব্যবহৃত হয়। এগুলো Java I/O এর ভিত্তি, যা কনসোল-ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য অপরিহার্য।

Content added By
Promotion